﻿using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace B.S.DataBase.EFCoreServiers.Dtos.Depts
{
    public class UpdateDepartmentDto
    {

        /// <summary>
        /// 部门的唯一标识符。
        /// 对应数据库中的 'id' 字段，主键，自增长。
        /// </summary>
        public int DeptId { get; set; }
        /// <summary>
        /// 部门名称。
        /// 对应数据库中的 'department_name' 字段，非空，唯一。
        /// 例如："总裁办"。
        /// </summary>
        [Required] // 标记为必填字段
        [MaxLength(255)] // 限制字符串最大长度
        public string DepartmentName { get; set; }



        /// <summary>
        /// 部门主管的用户ID。
        /// 对应数据库中的 'manager_id' 字段，可为空，外键，关联到 Users 表的 Id。
        /// 如果部门没有主管，则为null。
        /// </summary>
        public int? ManagerId { get; set; } // long? 表示可空的长整型

        /// <summary>
        /// 部门描述。
        /// 对应数据库中的 'description' 字段，可为空。
        /// 提供部门的详细说明或职责。
        /// </summary>
        public string Description { get; set; }
        /// <summary>
        /// 父部门的ID，用于构建部门层级结构。
        /// 对应数据库中的 'parent_id' 字段，可为空，自引用外键。
        /// 如果是顶级部门，则为null。
        /// </summary>
        public int? ParentId { get; set; } // long? 表示可空的长整型
    }
}
